مقدمه
Docker ابزاری عالی برای خودکار سازی برنامههای کاربردی لینوکس در کانتینرهای نرم افزاری است ، اما برای بهره گیری کامل از پتانسیل آن ، هر یک از اجزای برنامه باید در کانتینر شخصی خود اجرا شود. برای برنامههای کاربردی پیچیده با اجزای فراوان ، که همه کانتینرها را با هم برای راه اندازی ، برقراری ارتباط و خاموش کردن به کار میگیرند ، خیلی سریع میتوانند ناخوشایند شوند. انجمن Docker با یک راه حل محبوب به نام Fig روبرو شد که به شما این امکان را میدهد تا از یک فایل YAML استفاده کنید تا همه کانتینرها و پیکربندیهای Docker خود را بر روی آن تنظیم کنید. این امر چنان محبوب شد که تیم Docker تصمیم گرفت تا Docker Compos را بر اساس منبع Fig بسازد ، که اکنون مستهلک شده است. Docker Compose به کاربران این امکان را میدهد تا فرآیندهای کانتینرهای داکر را از جمله راه اندازی ، خاموش کردن و تنظیم لینکها و والیومهای داخل کانتینری را هماهنگ کنند. در این آموزش ، آخرین نسخه Docker Compose را برای کمک به شما در مدیریت برنامههای چند کانتینری روی یک سرور مجازیDebian 10 نصب خواهید کرد. پیش نیازها برای دنبال کردن این مقاله ، به این موارد نیاز دارید: یک سرور مجازیDebian 10 و یک کاربر غیر root با امتیازات sudo . این لینک در مورد تنظیم اولیه سرور مجازیبا آموزش Debian 10 نحوه انجام این دستورالعملهای مرحله 1 و مرحله 2 نحوه نصب و استفاده از Docker در Debian 10 نصب شده است توجه: اگرچه پیش نیازها دستورالعمل نصب Docker در Debian 10 را ارائه میدهند ، دستورات docker در این مقاله باید بعد از نصب Docker روی سیستم عاملهای دیگر کار کنند. مرحله 1 – نصب Docker Compose اگرچه میتوانید Docker Compose را از منابع رسمیDebian نصب کنید ، اما نسخههای متعدد فرعی بعد از آخرین نسخه موجود است ، بنابراین در این آموزش آن را از منبع Docker's GitHub نصب خواهید کرد. دستورالعمل کمیمتفاوت از آنچه در صفحه نسخهها خواهید یافت ، میباشد. این دستور با استفاده از فلگ -o برای مشخص کردن فایل خروجی به جای تغییر مسیر خروجی ، از وارد شدن به خطای " permission denied " ناشی از استفاده از sudo جلوگیری میکند. نسخه فعلی را بررسی کنید و در صورت لزوم آن را در دستور زیر به روز کنید: $ sudo curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose سپس مجوزها را تنظیم خواهیم کرد: $ sudo chmod +x /usr/local/bin/docker-compose سپس با بررسی نسخه تأیید خواهیم کرد که نصب با موفقیت انجام شد: $ docker-compose --version با این کار نسخهای که نصب کردیم چاپ خواهد شد: Output docker-compose version 1.25.3, build d4d1b42b اکنون که Docker Compose نصب شده است ، ما آماده اجرای یک مثال " Hello World " هستیم. مرحله 2 - اجرای یک کانتینر با Docker Compose رجیستری داکر عمومی، Docker Hub ، شامل تصویر Hello World برای نمایش و آزمایش است. این حداقل تنظیمات مورد نیاز برای اجرای یک کانتینر را با استفاده از Docker Compose نشان میدهد: یک فایل YAML که یک تصویر واحد را فراخوانی میکند. ما این تنظیمات حداقل را برای اجرای کانتینرهای hello-world ایجاد خواهیم کرد. ابتدا دایرکتوری برای فایل YAML ایجاد کنید و به آن سوییچ کنید: $ mkdir hello-world $ cd hello-world سپس فایل YAML را ایجاد کنید: $ nano docker-compose.yml مطالب زیر را در فایل قرار داده ، فایل را ذخیره کرده و از ویرایشگر متن خارج شوید: docker-compose.yml my-test: image: hello-world خط اول در فایل YAML به عنوان بخشی از نام کانتینر استفاده میشود. خط دوم مشخص میکند از کدام تصویر برای ایجاد کانتینر استفاده کنید. هنگامیکه ما دستور docker-compose up را اجرا میکنیم ، به دنبال یک تصویر محلی با نامیکه مشخص کردیم ، یعنی hello-world هستیم. با این جایگزینی ، فایل را ذخیره کرده و خارج میشویم. با فرمان docker images میتوانید به صورت دستی به تصاویر موجود در سیستم ما نگاه کنید: $ docker images هنگامیکه هیچ تصاویر محلی وجود ندارد ، فقط عناوین ستون نمایش داده میشود: Output REPOSITORY TAG IMAGE ID CREATED SIZE اکنون ، اگر هنوز در فهرست ~ / hello-world هستید ، دستور زیر را اجرا کنید: $ docker-compose up اولین باری که دستور را اجرا میکنید ، اگر هیچ تصویری محلی به نام hello-world وجود ندارد ، Docker Compose آن را از منبع عمومیDocker Hub بیرون میکشد: Output Pulling my-test (hello-world:)... latest: Pulling from library/hello-world 9db2ca6ccae0: Pull complete Digest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc Status: Downloaded newer image for hello-world:latest . . . پس از کشیدن تصویر ، docker-compose یک کانتینر ایجاد میکند ، ضمیمه میکند و برنامه hello را اجرا میکند ، که به نوبه خود تأیید میکند که نصب در حال کار است: Output . . . Creating helloworld_my-test_1... Attaching to helloworld_my-test_1 my-test_1 | my-test_1 | Hello from Docker. my-test_1 | This message shows that your installation appears to be working correctly. my-test_1 | . . . سپس توضیحی درباره آنچه انجام داده چاپ میکند: Output To generate this message, Docker took the following steps: my-test_1 | 1. The Docker client contacted the Docker daemon. my-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. my-test_1 | (amd64) my-test_1 | 3. The Docker daemon created a new container from that image which runs the my-test_1 | executable that produces the output you are currently reading. my-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it my-test_1 | to your terminal. کانتینرهای داکر فقط تا زمانی که دستور فعال است اجرا میشوند ، بنابراین پس از پایان کار hello ، کانتینر متوقف شد. در نتیجه ، هنگامیکه به فرآیندهای فعال نگاه میکنیم ، سرصفحات ستون ظاهر میشود ، اما کانتینرهای hello world لیست نمیشود زیرا در حال اجرا نیست: $ docker ps Output CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES با استفاده از فلگ -a میتوانید اطلاعات کانتینر را که در مرحله بعدی به آن نیاز دارید را مشاهده کنید. این همه کانتینرها را نشان میدهد، و نه فقط موارد فعال: $ docker ps -a Output CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 06069fd5ca23 hello-world "/hello" 35 minutes ago Exited (0) 35 minutes ago hello-world_my-test_1 این خروجی اطلاعاتی را نشان میدهد که باید پس از اتمام کار با کانتینر از آن حذف کنید. مرحله 3 - حذف تصویر (اختیاری) برای جلوگیری از استفاده غیر ضروری از فضا دیسک ، تصویر محلی را حذف خواهیم کرد. برای انجام این کار ، ما باید تمام کانتینرهای حاوی تصویر را با استفاده از دستور docker rm حذف کنیم ، به دنبال آن یا CONTAINER ID یا NAME حذف میشود. در مثال زیر ، ما از دستور docker ps -a که اخیراً اجرا کردیم، استفاده میکنیم. حتماً شناسه کانتینر خود را جایگزین کنید: $ docker rm 06069fd5ca23 پس از حذف همه کانتینرهای حاوی تصویر ، میتوانیم تصویر را حذف کنیم: $ docker rmi hello-world نتیجه شما Docker Compose را روی Debian 10 نصب کرده اید، نصب خود را با اجرای یک مثال Hello World آزمایش کرده و تصویر و کانتینر مورد آزمایش را حذف کرده اید. در حالی که مثال Hello World نصب شما را تأیید کرد ، این پیکربندی ساده یکی از مزایای اصلی Docker Compose را نشان نمیدهد – آن هم توانایی بالا و پایین آوردن گروهی از کانتینرهای Docker به صورت همزمان. برای دیدن نحوه استفاده از Docker Compose با جزئیات بیشتر ، به نحوه نصب وردپرس با Docker Compose نگاهی بیندازید. از این لینکها زیر میتوانید آمورشهای بیشتری برای لینوکس پیدا کنید : نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 نحوه نصب و استفاده از TimescaleDB در CentOS 7 نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 (شروع سریع) نحوه راه اندازی Eclipse Theia Cloud IDE Platform در Debian 10 نحوه نصب و استفاده ازRadamsa برای فوز کردن برنامهها (تکنیک تست خودکار نرم افزار) و خدمات شبکه روی Ubuntu 18.04 نحوه نصب Docker Compose در Debian 10 چگونه میتوان با کتابخانه (library) درخواستها در پایتون شروع به کار کرد نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04 نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7 بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose در اوبونتو 18.04 نحوه بهینه سازی درخواستهای MySQL با ذخیره سازی ProxySQL در اوبونتو 16.04 نحوه استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18.04 چگونه میتوان پلتفرم کد سرور Cloud IDE را در اوبونتو 18.04 تنظیم کرد (شروع سریع) چگونه میتوان از رولهای ansible برای انتزاع محیط زیرساختی خود استفاده کرد نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18.04 نحوه تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes در vpsgol با استفاده از Velero نحوه نصب و استفاده از PostgreSQL در CentOS 7 چگونه میتوان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو 18.4 تنظیم کرد نحوه استقرار و مدیریت DNS با استفاده از DNSControl در Debian 10 چگونه میتوان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم کرد کلمات کلیدی خرید سرور خرید vps– خرید سرور مجازی– خرید سرور– سرور هلند– فروش vps– سرور مجازی آمریکا– خریدvps– سرور مجازی هلند– فروش سرور مجازی– سرور آمریکا– vps– سرور مجازی انگلیس– سرور مجازی آلمان– سرور مجازی کانادا– خرید vps آمریکا– خرید وی پی اس– سرور– خرید سرور مجازی هلند– vps خرید– سرور مجازی فرانسه– سرور مجازی هلند– خرید vps آمریکا– خرید سرور مجازی هلند– خرید وی پی اس– خرید vps هلند– خرید vps فرانسه